package model

import (
	"api/util"
	"os"
	"time"

	"github.com/jinzhu/gorm"

	// Mysql数据库连接使用
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

// DB 数据库链接单例
var DB *gorm.DB

// Database 初始化数据库连接
func Database() {
	// 加载连接
	connString := os.Getenv("MYSQL_DSN")

	db, err := gorm.Open("mysql", connString)

	db.LogMode(true)

	// err 连接错误
	if err != nil {
		util.Log().Panic("MySQL启动失败", err)
	}

	// 连接池设置

	// 空闲
	db.DB().SetMaxIdleConns(50)
	// 最大连接数
	db.DB().SetMaxOpenConns(100)
	// 超时时间
	db.DB().SetConnMaxLifetime(time.Second * 30)

	DB = db

	// 自动迁移
	migration()
}
